<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Os1: /home/alejandro/Desarrollo eclipse/os1/include/LoopClosing.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Os1
   &#160;<span id="projectnumber">1</span>
   </div>
   <div id="projectbrief">OrbSlam2 documentado y modificado</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,'Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('_loop_closing_8h_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">LoopClosing.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="_loop_closing_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef LOOPCLOSING_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define LOOPCLOSING_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_key_frame_8h.html">KeyFrame.h</a>&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_local_mapping_8h.html">LocalMapping.h</a>&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_map_8h.html">Map.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_o_r_b_vocabulary_8h.html">ORBVocabulary.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_tracking_8h.html">Tracking.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_key_frame_database_8h.html">KeyFrameDatabase.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;thread&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;../Thirdparty/g2o/g2o/types/types_seven_dof_expmap.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_o_r_b___s_l_a_m2.html">ORB_SLAM2</a></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">class </span>Tracking;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">class </span>LocalMapping;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">class </span>KeyFrameDatabase;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html">   60</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html">LoopClosing</a></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a8efed418be885643d3c43113ff1d7bb2">   64</a></span>&#160;    <span class="keyword">typedef</span> pair&lt;set&lt;KeyFrame*&gt;,<span class="keywordtype">int</span>&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a8efed418be885643d3c43113ff1d7bb2">ConsistentGroup</a>;    </div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keyword">typedef</span> map&lt;KeyFrame*,g2o::Sim3,std::less&lt;KeyFrame*&gt;,</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ae9ada143a8308ce32990a7c7b5d533ab">   66</a></span>&#160;        Eigen::aligned_allocator&lt;std::pair&lt;const KeyFrame*, g2o::Sim3&gt; &gt; &gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ae9ada143a8308ce32990a7c7b5d533ab">KeyFrameAndPose</a>;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#af5f7b8a43efa8bc771a5227ed2fbf460">LoopClosing</a>(<a class="code" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a>* pMap, <a class="code" href="class_o_r_b___s_l_a_m2_1_1_key_frame_database.html">KeyFrameDatabase</a>* pDB, <a class="code" href="class_d_bo_w2_1_1_templated_vocabulary.html">ORBVocabulary</a>* pVoc,<span class="keyword">const</span> <span class="keywordtype">bool</span> bFixScale);</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a20bce54d19c979511043d7c109aa741a">SetTracker</a>(<a class="code" href="class_o_r_b___s_l_a_m2_1_1_tracking.html">Tracking</a>* pTracker);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aa27124f61055c2b5f53497e918195269">SetLocalMapper</a>(<a class="code" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html">LocalMapping</a>* pLocalMapper);</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="comment">// Main function</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a520014f22059056d6256476bccb04471">Run</a>();</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a680d0b255d764754841e622f5af97473">InsertKeyFrame</a>(<a class="code" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a> *pKF);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a7dc868b9f4b8381a94aae2c85bfec3c5">RequestReset</a>();</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="comment">// This function will run in a separate thread</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a4b10a9c18541818c9490a62447ef7f18">RunGlobalBundleAdjustment</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> nLoopKF);</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a4ddc6674aa54db7d38946f73eb9776f2">  121</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a4ddc6674aa54db7d38946f73eb9776f2">isRunningGBA</a>(){</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        unique_lock&lt;std::mutex&gt; lock(<a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a5e6e898fe4e8e5f680f840d746fa5565">mMutexGBA</a>);</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ad04c8ddd2135b81fabfa45891ab66add">mbRunningGBA</a>;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    }</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aa8efb239cd4b488b12e7f1223c308a4e">  131</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aa8efb239cd4b488b12e7f1223c308a4e">isFinishedGBA</a>(){</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        unique_lock&lt;std::mutex&gt; lock(<a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a5e6e898fe4e8e5f680f840d746fa5565">mMutexGBA</a>);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#acdfbeff51644bd4c3d2d54c637d95e6c">mbFinishedGBA</a>;</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    }   </div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aa271039dcafe7cc053f72ba541bc499b">RequestFinish</a>();</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac242214c60ed66e9432e0457e3fc29ad">isFinished</a>();</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac0c81e654509eb9384abe5e769db4f41">CheckNewKeyFrames</a>();</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aa8110ca79cebaf509e378d30e55f1381">DetectLoop</a>();</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ab4fcf814eed5b5dd2aec96454561b078">ComputeSim3</a>();</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aabe9d9b913f36b607c67b0ed0df42a1d">SearchAndFuse</a>(<span class="keyword">const</span> KeyFrameAndPose &amp;CorrectedPosesMap);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aa007e0678582ec0de5d71280d23af540">CorrectLoop</a>();</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a288545384b48c758f910a4762c873733">ResetIfRequested</a>();</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ae9bac1131984f7915ab1fdf220912b0b">  192</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ae9bac1131984f7915ab1fdf220912b0b">mbResetRequested</a>;</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a979cad182a7f7bb08be165304d93106b">  197</a></span>&#160;    std::mutex <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a979cad182a7f7bb08be165304d93106b">mMutexReset</a>;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac13b01270b4daef9be2a098f82e9f64f">CheckFinish</a>();</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aeea102bfacf8538ef605d76e4192a622">SetFinish</a>();</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a9e3dfbee3d1635fe11e600f94b0f60dc">  214</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a9e3dfbee3d1635fe11e600f94b0f60dc">mbFinishRequested</a>;</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a6d8de49d49b647c33f3616f4cc95c42c">  219</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a6d8de49d49b647c33f3616f4cc95c42c">mbFinished</a>;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a2bdc72e69885435e1c4f39b759c2ec8d">  224</a></span>&#160;    std::mutex <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a2bdc72e69885435e1c4f39b759c2ec8d">mMutexFinish</a>;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a0b1dabf1326afa9d6a28768fd6f498b4">  227</a></span>&#160;    <a class="code" href="class_o_r_b___s_l_a_m2_1_1_map.html">Map</a>* <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a0b1dabf1326afa9d6a28768fd6f498b4">mpMap</a>;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac3bff69250ab812292fb0a0e59cd3076">  230</a></span>&#160;    <a class="code" href="class_o_r_b___s_l_a_m2_1_1_tracking.html">Tracking</a>* <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac3bff69250ab812292fb0a0e59cd3076">mpTracker</a>;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a5bc11ebe6d60187d4d1708932bbb52f6">  233</a></span>&#160;    <a class="code" href="class_o_r_b___s_l_a_m2_1_1_key_frame_database.html">KeyFrameDatabase</a>* <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a5bc11ebe6d60187d4d1708932bbb52f6">mpKeyFrameDB</a>;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac9d1b37eb70edbc013a431d92a4d86d1">  236</a></span>&#160;    <a class="code" href="class_d_bo_w2_1_1_templated_vocabulary.html">ORBVocabulary</a>* <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac9d1b37eb70edbc013a431d92a4d86d1">mpORBVocabulary</a>;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a5eaa1b6d507d9bd138ab0f10a308e3c9">  243</a></span>&#160;    <a class="code" href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html">LocalMapping</a> *<a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a5eaa1b6d507d9bd138ab0f10a308e3c9">mpLocalMapper</a>;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a4b5b9bb2ba5e3fe79428e4af9a002025">  251</a></span>&#160;    std::list&lt;KeyFrame*&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a4b5b9bb2ba5e3fe79428e4af9a002025">mlpLoopKeyFrameQueue</a>;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a3c28fbf7b84469cd14b12f511d499533">  256</a></span>&#160;    std::mutex <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a3c28fbf7b84469cd14b12f511d499533">mMutexLoopQueue</a>;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="comment">// Loop detector parameters</span></div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a78c93c677c23ca7bf62a2a9652c008ff">  259</a></span>&#160;    <span class="keywordtype">float</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a78c93c677c23ca7bf62a2a9652c008ff">mnCovisibilityConsistencyTh</a>;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    <span class="comment">// Loop detector variables</span></div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a4b6bc1810ef5921462ebdeee32508118">  266</a></span>&#160;<span class="comment"></span>    <a class="code" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a>* <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a4b6bc1810ef5921462ebdeee32508118">mpCurrentKF</a>;</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a53d45d3e2f0a8e0c9797079b9ae4ea37">  273</a></span>&#160;    <a class="code" href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">KeyFrame</a>* <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a53d45d3e2f0a8e0c9797079b9ae4ea37">mpMatchedKF</a>;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aede54de0cb62136859ccb297e890f573">  279</a></span>&#160;    std::vector&lt;ConsistentGroup&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aede54de0cb62136859ccb297e890f573">mvConsistentGroups</a>;</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac545f793bc68348fea584022d1daa609">  285</a></span>&#160;    std::vector&lt;KeyFrame*&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac545f793bc68348fea584022d1daa609">mvpEnoughConsistentCandidates</a>;</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ad9595220811b5b814d1413451ecbaa4d">  292</a></span>&#160;    std::vector&lt;KeyFrame*&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ad9595220811b5b814d1413451ecbaa4d">mvpCurrentConnectedKFs</a>;</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#afd07791eb7a84ea2de2ab9d88e32d4dc">  299</a></span>&#160;    std::vector&lt;MapPoint*&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#afd07791eb7a84ea2de2ab9d88e32d4dc">mvpCurrentMatchedPoints</a>;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a52778b54f944bab5a3580b82233e8c72">  307</a></span>&#160;    std::vector&lt;MapPoint*&gt; <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a52778b54f944bab5a3580b82233e8c72">mvpLoopMapPoints</a>;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#abbb5a5f8a46de211d46aaa6129385ac2">  313</a></span>&#160;    cv::Mat <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#abbb5a5f8a46de211d46aaa6129385ac2">mScw</a>;</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a9ea331d48d572c8e269c90d35c0de1e7">  318</a></span>&#160;    <a class="code" href="structg2o_1_1_sim3.html">g2o::Sim3</a> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a9ea331d48d572c8e269c90d35c0de1e7">mg2oScw</a>;</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a6a6ee027c2c4c45fcd3811819c22953a">  320</a></span>&#160;    <span class="keywordtype">long</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a6a6ee027c2c4c45fcd3811819c22953a">mLastLoopKFid</a>;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    <span class="comment">// Variables related to Global Bundle Adjustment</span></div><div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ad04c8ddd2135b81fabfa45891ab66add">  328</a></span>&#160;<span class="comment"></span>    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ad04c8ddd2135b81fabfa45891ab66add">mbRunningGBA</a>;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#acdfbeff51644bd4c3d2d54c637d95e6c">  334</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#acdfbeff51644bd4c3d2d54c637d95e6c">mbFinishedGBA</a>;</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a7e24710761d1788f395fafc16a1a8e80">  339</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a7e24710761d1788f395fafc16a1a8e80">mbStopGBA</a>;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a5e6e898fe4e8e5f680f840d746fa5565">  348</a></span>&#160;    std::mutex <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a5e6e898fe4e8e5f680f840d746fa5565">mMutexGBA</a>;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aeb14401ffb2cafdcef9f0a0323db6296">  353</a></span>&#160;    std::thread* <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aeb14401ffb2cafdcef9f0a0323db6296">mpThreadGBA</a>;</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    <span class="comment">// Fix scale in the stereo/RGB-D case</span></div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a11865c48bbad102b5177e4350de71bd4">  359</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a11865c48bbad102b5177e4350de71bd4">mbFixScale</a>;</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;};</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;} <span class="comment">//namespace ORB_SLAM</span></div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="preprocessor">#endif // LOOPCLOSING_H</span></div><div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a6d8de49d49b647c33f3616f4cc95c42c"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a6d8de49d49b647c33f3616f4cc95c42c">ORB_SLAM2::LoopClosing::mbFinished</a></div><div class="ttdeci">bool mbFinished</div><div class="ttdoc">Marca de proceso terminado. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:219</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_aabe9d9b913f36b607c67b0ed0df42a1d"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aabe9d9b913f36b607c67b0ed0df42a1d">ORB_SLAM2::LoopClosing::SearchAndFuse</a></div><div class="ttdeci">void SearchAndFuse(const KeyFrameAndPose &amp;CorrectedPosesMap)</div><div class="ttdoc">Proyecta los puntos observados en la vecindad del keyframe del bucle, sobre el keyframe actual y veci...</div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:589</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a9ea331d48d572c8e269c90d35c0de1e7"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a9ea331d48d572c8e269c90d35c0de1e7">ORB_SLAM2::LoopClosing::mg2oScw</a></div><div class="ttdeci">g2o::Sim3 mg2oScw</div><div class="ttdoc">Pose de la cámara respecto del mundo en formato g2o, de donde se obtiene LoopClosing::mScw. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:318</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a7e24710761d1788f395fafc16a1a8e80"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a7e24710761d1788f395fafc16a1a8e80">ORB_SLAM2::LoopClosing::mbStopGBA</a></div><div class="ttdeci">bool mbStopGBA</div><div class="ttdoc">Marca para solicitar abortar el Global Bundle Adjustment, porque se requiere iniciar otro con mejores...</div><div class="ttdef"><b>Definition:</b> LoopClosing.h:339</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_aeea102bfacf8538ef605d76e4192a622"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aeea102bfacf8538ef605d76e4192a622">ORB_SLAM2::LoopClosing::SetFinish</a></div><div class="ttdeci">void SetFinish()</div><div class="ttdoc">Hace true LoopClosing::mbFinished, para consultas de otros hilos. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:760</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html">ORB_SLAM2::LoopClosing</a></div><div class="ttdoc">Cierre de bucles. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:60</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a979cad182a7f7bb08be165304d93106b"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a979cad182a7f7bb08be165304d93106b">ORB_SLAM2::LoopClosing::mMutexReset</a></div><div class="ttdeci">std::mutex mMutexReset</div><div class="ttdoc">Mutex para acceder a LoopClosing::mbResetRequested. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:197</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a680d0b255d764754841e622f5af97473"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a680d0b255d764754841e622f5af97473">ORB_SLAM2::LoopClosing::InsertKeyFrame</a></div><div class="ttdeci">void InsertKeyFrame(KeyFrame *pKF)</div><div class="ttdoc">Agrega nuevos keyframes a la cola de proceso para buscar bucles. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:91</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a288545384b48c758f910a4762c873733"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a288545384b48c758f910a4762c873733">ORB_SLAM2::LoopClosing::ResetIfRequested</a></div><div class="ttdeci">void ResetIfRequested()</div><div class="ttdoc">Reinicializa el objeto si hay una solicitud pendiente para hacerlo. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:636</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_ac0c81e654509eb9384abe5e769db4f41"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac0c81e654509eb9384abe5e769db4f41">ORB_SLAM2::LoopClosing::CheckNewKeyFrames</a></div><div class="ttdeci">bool CheckNewKeyFrames()</div><div class="ttdoc">Indica si hay keyframes en la cola esperando a ser procesados. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:98</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a6a6ee027c2c4c45fcd3811819c22953a"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a6a6ee027c2c4c45fcd3811819c22953a">ORB_SLAM2::LoopClosing::mLastLoopKFid</a></div><div class="ttdeci">long unsigned int mLastLoopKFid</div><div class="ttdef"><b>Definition:</b> LoopClosing.h:320</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_ac242214c60ed66e9432e0457e3fc29ad"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac242214c60ed66e9432e0457e3fc29ad">ORB_SLAM2::LoopClosing::isFinished</a></div><div class="ttdeci">bool isFinished()</div><div class="ttdoc">Informa a otros hilos que LoopClosing ha terminado. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:766</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_aa27124f61055c2b5f53497e918195269"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aa27124f61055c2b5f53497e918195269">ORB_SLAM2::LoopClosing::SetLocalMapper</a></div><div class="ttdeci">void SetLocalMapper(LocalMapping *pLocalMapper)</div><div class="ttdoc">Registra el mapeador local en LoopClosing::mpLocalMapper. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:52</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_aa007e0678582ec0de5d71280d23af540"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aa007e0678582ec0de5d71280d23af540">ORB_SLAM2::LoopClosing::CorrectLoop</a></div><div class="ttdeci">void CorrectLoop()</div><div class="ttdoc">Corrige el bucle con los encastres elaborados por LoopClosing::ComputeSim3. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:406</div></div>
<div class="ttc" id="structg2o_1_1_sim3_html"><div class="ttname"><a href="structg2o_1_1_sim3.html">g2o::Sim3</a></div><div class="ttdef"><b>Definition:</b> sim3.h:41</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a5e6e898fe4e8e5f680f840d746fa5565"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a5e6e898fe4e8e5f680f840d746fa5565">ORB_SLAM2::LoopClosing::mMutexGBA</a></div><div class="ttdeci">std::mutex mMutexGBA</div><div class="ttdoc">mutex para acceder a mbRunningGBA y a mbFinishedGBA. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:348</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_acdfbeff51644bd4c3d2d54c637d95e6c"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#acdfbeff51644bd4c3d2d54c637d95e6c">ORB_SLAM2::LoopClosing::mbFinishedGBA</a></div><div class="ttdeci">bool mbFinishedGBA</div><div class="ttdoc">Marca exactamente contraria a mbRunningGBA. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:334</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_ac9d1b37eb70edbc013a431d92a4d86d1"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac9d1b37eb70edbc013a431d92a4d86d1">ORB_SLAM2::LoopClosing::mpORBVocabulary</a></div><div class="ttdeci">ORBVocabulary * mpORBVocabulary</div><div class="ttdoc">Puntero al vocabulario BoW singleton. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:236</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a0b1dabf1326afa9d6a28768fd6f498b4"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a0b1dabf1326afa9d6a28768fd6f498b4">ORB_SLAM2::LoopClosing::mpMap</a></div><div class="ttdeci">Map * mpMap</div><div class="ttdoc">Puntero al mapa singleton. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:227</div></div>
<div class="ttc" id="_map_8h_html"><div class="ttname"><a href="_map_8h.html">Map.h</a></div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a5eaa1b6d507d9bd138ab0f10a308e3c9"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a5eaa1b6d507d9bd138ab0f10a308e3c9">ORB_SLAM2::LoopClosing::mpLocalMapper</a></div><div class="ttdeci">LocalMapping * mpLocalMapper</div><div class="ttdoc">Puntero al mapeador local singleton. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:243</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_afd07791eb7a84ea2de2ab9d88e32d4dc"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#afd07791eb7a84ea2de2ab9d88e32d4dc">ORB_SLAM2::LoopClosing::mvpCurrentMatchedPoints</a></div><div class="ttdeci">std::vector&lt; MapPoint * &gt; mvpCurrentMatchedPoints</div><div class="ttdoc">Conjunto de puntos macheados para el bucle, en LoopClosing::ComputeSim3. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:299</div></div>
<div class="ttc" id="_key_frame_8h_html"><div class="ttname"><a href="_key_frame_8h.html">KeyFrame.h</a></div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a53d45d3e2f0a8e0c9797079b9ae4ea37"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a53d45d3e2f0a8e0c9797079b9ae4ea37">ORB_SLAM2::LoopClosing::mpMatchedKF</a></div><div class="ttdeci">KeyFrame * mpMatchedKF</div><div class="ttdoc">Keyframe que machea con LoopClosing::mpCurrentKF. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:273</div></div>
<div class="ttc" id="class_d_bo_w2_1_1_templated_vocabulary_html"><div class="ttname"><a href="class_d_bo_w2_1_1_templated_vocabulary.html">DBoW2::TemplatedVocabulary</a></div><div class="ttdoc">Generic Vocabulary. </div><div class="ttdef"><b>Definition:</b> TemplatedVocabulary.h:44</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_map_html"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_map.html">ORB_SLAM2::Map</a></div><div class="ttdoc">Mapa del mundo, de puntos y keyframes. </div><div class="ttdef"><b>Definition:</b> Map.h:52</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_aede54de0cb62136859ccb297e890f573"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aede54de0cb62136859ccb297e890f573">ORB_SLAM2::LoopClosing::mvConsistentGroups</a></div><div class="ttdeci">std::vector&lt; ConsistentGroup &gt; mvConsistentGroups</div><div class="ttdoc">Vector de keyframes y su grupo de pertenencia. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:279</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_key_frame_html"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_key_frame.html">ORB_SLAM2::KeyFrame</a></div><div class="ttdoc">Cuadro clave, keyframe. </div><div class="ttdef"><b>Definition:</b> KeyFrame.h:79</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a4b5b9bb2ba5e3fe79428e4af9a002025"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a4b5b9bb2ba5e3fe79428e4af9a002025">ORB_SLAM2::LoopClosing::mlpLoopKeyFrameQueue</a></div><div class="ttdeci">std::list&lt; KeyFrame * &gt; mlpLoopKeyFrameQueue</div><div class="ttdoc">Lista de nuevos keyframes a analizar para buscar bucles. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:251</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_abbb5a5f8a46de211d46aaa6129385ac2"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#abbb5a5f8a46de211d46aaa6129385ac2">ORB_SLAM2::LoopClosing::mScw</a></div><div class="ttdeci">cv::Mat mScw</div><div class="ttdoc">Pose de la cámara respecto del mundo, propuesta para el keyframe actual al cerrar el bucle...</div><div class="ttdef"><b>Definition:</b> LoopClosing.h:313</div></div>
<div class="ttc" id="namespace_o_r_b___s_l_a_m2_html"><div class="ttname"><a href="namespace_o_r_b___s_l_a_m2.html">ORB_SLAM2</a></div><div class="ttdoc">This file is part of ORB-SLAM2. </div><div class="ttdef"><b>Definition:</b> Converter.h:31</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_aa8110ca79cebaf509e378d30e55f1381"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aa8110ca79cebaf509e378d30e55f1381">ORB_SLAM2::LoopClosing::DetectLoop</a></div><div class="ttdeci">bool DetectLoop()</div><div class="ttdoc">Procesa los keyframes de la cola, buscando bucles. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:104</div></div>
<div class="ttc" id="_tracking_8h_html"><div class="ttname"><a href="_tracking_8h.html">Tracking.h</a></div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_tracking_html"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_tracking.html">ORB_SLAM2::Tracking</a></div><div class="ttdoc">Objeto único que se ejecuta en su propio Trhead, y se inicia con Run(). </div><div class="ttdef"><b>Definition:</b> Tracking.h:114</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a3c28fbf7b84469cd14b12f511d499533"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a3c28fbf7b84469cd14b12f511d499533">ORB_SLAM2::LoopClosing::mMutexLoopQueue</a></div><div class="ttdeci">std::mutex mMutexLoopQueue</div><div class="ttdoc">mutex para acceso a la cola de nuevos keyframes LoopClosing::mlpLoopKeyFrameQueue ...</div><div class="ttdef"><b>Definition:</b> LoopClosing.h:256</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a9e3dfbee3d1635fe11e600f94b0f60dc"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a9e3dfbee3d1635fe11e600f94b0f60dc">ORB_SLAM2::LoopClosing::mbFinishRequested</a></div><div class="ttdeci">bool mbFinishRequested</div><div class="ttdoc">Marca que se ha solicitado la terminación de LoopClosing. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:214</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a20bce54d19c979511043d7c109aa741a"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a20bce54d19c979511043d7c109aa741a">ORB_SLAM2::LoopClosing::SetTracker</a></div><div class="ttdeci">void SetTracker(Tracking *pTracker)</div><div class="ttdoc">Registra el tracker del sistema. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:47</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a11865c48bbad102b5177e4350de71bd4"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a11865c48bbad102b5177e4350de71bd4">ORB_SLAM2::LoopClosing::mbFixScale</a></div><div class="ttdeci">bool mbFixScale</div><div class="ttdoc">Siempre false en monocular. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:359</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a520014f22059056d6256476bccb04471"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a520014f22059056d6256476bccb04471">ORB_SLAM2::LoopClosing::Run</a></div><div class="ttdeci">void Run()</div><div class="ttdoc">Función que se ejecuta en el hilo dedicado al cierre de bucles, y alberga el bucle principal de este ...</div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:58</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_ab4fcf814eed5b5dd2aec96454561b078"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ab4fcf814eed5b5dd2aec96454561b078">ORB_SLAM2::LoopClosing::ComputeSim3</a></div><div class="ttdeci">bool ComputeSim3()</div><div class="ttdoc">Procesa la lista de candidatos intentando corregir su pose. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:234</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a52778b54f944bab5a3580b82233e8c72"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a52778b54f944bab5a3580b82233e8c72">ORB_SLAM2::LoopClosing::mvpLoopMapPoints</a></div><div class="ttdeci">std::vector&lt; MapPoint * &gt; mvpLoopMapPoints</div><div class="ttdoc">Conjunto de puntos observados por el keyframe actual y sus vecinos, a considerar y fusionar en el cie...</div><div class="ttdef"><b>Definition:</b> LoopClosing.h:307</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_ad9595220811b5b814d1413451ecbaa4d"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ad9595220811b5b814d1413451ecbaa4d">ORB_SLAM2::LoopClosing::mvpCurrentConnectedKFs</a></div><div class="ttdeci">std::vector&lt; KeyFrame * &gt; mvpCurrentConnectedKFs</div><div class="ttdoc">Conjunto de keyframes conectados por el grafo de covisibilidad. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:292</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_aa271039dcafe7cc053f72ba541bc499b"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aa271039dcafe7cc053f72ba541bc499b">ORB_SLAM2::LoopClosing::RequestFinish</a></div><div class="ttdeci">void RequestFinish()</div><div class="ttdoc">Otro hilo solicita terminar LoopClosing. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:748</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a78c93c677c23ca7bf62a2a9652c008ff"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a78c93c677c23ca7bf62a2a9652c008ff">ORB_SLAM2::LoopClosing::mnCovisibilityConsistencyTh</a></div><div class="ttdeci">float mnCovisibilityConsistencyTh</div><div class="ttdef"><b>Definition:</b> LoopClosing.h:259</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_aa8efb239cd4b488b12e7f1223c308a4e"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aa8efb239cd4b488b12e7f1223c308a4e">ORB_SLAM2::LoopClosing::isFinishedGBA</a></div><div class="ttdeci">bool isFinishedGBA()</div><div class="ttdef"><b>Definition:</b> LoopClosing.h:131</div></div>
<div class="ttc" id="_o_r_b_vocabulary_8h_html"><div class="ttname"><a href="_o_r_b_vocabulary_8h.html">ORBVocabulary.h</a></div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a8efed418be885643d3c43113ff1d7bb2"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a8efed418be885643d3c43113ff1d7bb2">ORB_SLAM2::LoopClosing::ConsistentGroup</a></div><div class="ttdeci">pair&lt; set&lt; KeyFrame * &gt;, int &gt; ConsistentGroup</div><div class="ttdef"><b>Definition:</b> LoopClosing.h:64</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_aeb14401ffb2cafdcef9f0a0323db6296"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#aeb14401ffb2cafdcef9f0a0323db6296">ORB_SLAM2::LoopClosing::mpThreadGBA</a></div><div class="ttdeci">std::thread * mpThreadGBA</div><div class="ttdoc">Hilo para el Global Bundle Adjustment. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:353</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_ae9ada143a8308ce32990a7c7b5d533ab"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ae9ada143a8308ce32990a7c7b5d533ab">ORB_SLAM2::LoopClosing::KeyFrameAndPose</a></div><div class="ttdeci">map&lt; KeyFrame *, g2o::Sim3, std::less&lt; KeyFrame * &gt;, Eigen::aligned_allocator&lt; std::pair&lt; const KeyFrame *, g2o::Sim3 &gt; &gt; &gt; KeyFrameAndPose</div><div class="ttdef"><b>Definition:</b> LoopClosing.h:66</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_af5f7b8a43efa8bc771a5227ed2fbf460"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#af5f7b8a43efa8bc771a5227ed2fbf460">ORB_SLAM2::LoopClosing::LoopClosing</a></div><div class="ttdeci">LoopClosing(Map *pMap, KeyFrameDatabase *pDB, ORBVocabulary *pVoc, const bool bFixScale)</div><div class="ttdoc">Único constructor invocado por el constructor de System para crear el singleton. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:38</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_ad04c8ddd2135b81fabfa45891ab66add"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ad04c8ddd2135b81fabfa45891ab66add">ORB_SLAM2::LoopClosing::mbRunningGBA</a></div><div class="ttdeci">bool mbRunningGBA</div><div class="ttdoc">Marca que indica que se está ejecutando un Global Bundle Adjustement. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:328</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a4b10a9c18541818c9490a62447ef7f18"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a4b10a9c18541818c9490a62447ef7f18">ORB_SLAM2::LoopClosing::RunGlobalBundleAdjustment</a></div><div class="ttdeci">void RunGlobalBundleAdjustment(unsigned long nLoopKF)</div><div class="ttdoc">Bundle adjustment sobre todo el mapa luego de cerrar el bucle. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:647</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a7dc868b9f4b8381a94aae2c85bfec3c5"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a7dc868b9f4b8381a94aae2c85bfec3c5">ORB_SLAM2::LoopClosing::RequestReset</a></div><div class="ttdeci">void RequestReset()</div><div class="ttdoc">Solicita reinicializar el proceso. </div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:618</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_local_mapping_html"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_local_mapping.html">ORB_SLAM2::LocalMapping</a></div><div class="ttdoc">LocalMapping tiene una única instancia ejecutando el método Run en su propio thread. </div><div class="ttdef"><b>Definition:</b> LocalMapping.h:68</div></div>
<div class="ttc" id="_local_mapping_8h_html"><div class="ttname"><a href="_local_mapping_8h.html">LocalMapping.h</a></div></div>
<div class="ttc" id="_key_frame_database_8h_html"><div class="ttname"><a href="_key_frame_database_8h.html">KeyFrameDatabase.h</a></div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a2bdc72e69885435e1c4f39b759c2ec8d"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a2bdc72e69885435e1c4f39b759c2ec8d">ORB_SLAM2::LoopClosing::mMutexFinish</a></div><div class="ttdeci">std::mutex mMutexFinish</div><div class="ttdoc">mutex para acceder a LoopClosing::mbFinished. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:224</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a4ddc6674aa54db7d38946f73eb9776f2"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a4ddc6674aa54db7d38946f73eb9776f2">ORB_SLAM2::LoopClosing::isRunningGBA</a></div><div class="ttdeci">bool isRunningGBA()</div><div class="ttdef"><b>Definition:</b> LoopClosing.h:121</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_key_frame_database_html"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_key_frame_database.html">ORB_SLAM2::KeyFrameDatabase</a></div><div class="ttdoc">Lista invertida de KeyFrames, accesible por BoW. </div><div class="ttdef"><b>Definition:</b> KeyFrameDatabase.h:46</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_ac3bff69250ab812292fb0a0e59cd3076"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac3bff69250ab812292fb0a0e59cd3076">ORB_SLAM2::LoopClosing::mpTracker</a></div><div class="ttdeci">Tracking * mpTracker</div><div class="ttdoc">Puntero al tracker singleton. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:230</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a4b6bc1810ef5921462ebdeee32508118"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a4b6bc1810ef5921462ebdeee32508118">ORB_SLAM2::LoopClosing::mpCurrentKF</a></div><div class="ttdeci">KeyFrame * mpCurrentKF</div><div class="ttdoc">Keyframe &quot;actual&quot;, extraído de la cola de keyframes a procesar. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:266</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_ac545f793bc68348fea584022d1daa609"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac545f793bc68348fea584022d1daa609">ORB_SLAM2::LoopClosing::mvpEnoughConsistentCandidates</a></div><div class="ttdeci">std::vector&lt; KeyFrame * &gt; mvpEnoughConsistentCandidates</div><div class="ttdoc">Lista de keyframes candidatos a cerrar un bucle. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:285</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_a5bc11ebe6d60187d4d1708932bbb52f6"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#a5bc11ebe6d60187d4d1708932bbb52f6">ORB_SLAM2::LoopClosing::mpKeyFrameDB</a></div><div class="ttdeci">KeyFrameDatabase * mpKeyFrameDB</div><div class="ttdoc">Puntero a la base de datos de keyframes singleton. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:233</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_ae9bac1131984f7915ab1fdf220912b0b"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ae9bac1131984f7915ab1fdf220912b0b">ORB_SLAM2::LoopClosing::mbResetRequested</a></div><div class="ttdeci">bool mbResetRequested</div><div class="ttdoc">Marca de solicitud de reinicialización. </div><div class="ttdef"><b>Definition:</b> LoopClosing.h:192</div></div>
<div class="ttc" id="class_o_r_b___s_l_a_m2_1_1_loop_closing_html_ac13b01270b4daef9be2a098f82e9f64f"><div class="ttname"><a href="class_o_r_b___s_l_a_m2_1_1_loop_closing.html#ac13b01270b4daef9be2a098f82e9f64f">ORB_SLAM2::LoopClosing::CheckFinish</a></div><div class="ttdeci">bool CheckFinish()</div><div class="ttdef"><b>Definition:</b> LoopClosing.cc:754</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="_loop_closing_8h.html">LoopClosing.h</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.12 </li>
  </ul>
</div>
</body>
</html>
